"""
defaultdict的使用示例
"""

from collections import defaultdict

users = ["Kevin1", "Kevin2", "Kevin3"]


def gen_user_group_dict():
    return {
        "name": "",
        "nums": 0
    }


if __name__ == '__main__':
    # 原始的实现方式
    user_dict = dict()
    for user in users:
        if user not in user_dict:
            user_dict[user] = 1
        else:
            user_dict[user] += 1
    print(user_dict)

    # 优化版的实现（性能更高效，少一次查询）
    user_dict = {}
    for user in users:
        user_dict.setdefault(user, 0)
        user_dict[user] += 1
    print(user_dict)

    # 使用defaultdict实现（性能更高效，更少的判断）
    user_default_dict = defaultdict(int)
    for user in users:
        user_default_dict[user] += 1
    print(user_default_dict)

    # 构建复杂dict
    user_group_default_dict = defaultdict(gen_user_group_dict)
    print(user_group_default_dict['group1'])
